package com.tuanzi.loan.business.repository.statistics;

import com.tuanzi.loan.vo.request.statistics.ActivityAverageJoinStatRequest;
import com.tuanzi.loan.vo.request.statistics.ActivityParticipateStatSearchRequest;
import com.tuanzi.loan.vo.response.statistics.ActivityAverageJoinStatResponse;
import com.tuanzi.loan.vo.response.statistics.ActivityParticipateStatSearchResponse;
import com.tuanzi.server.loan_base.model.bean.common.CommAdvertise;
import com.tuanzi.server.loan_base.model.bean.common.CommPlatform;
import com.tuanzi.server.loan_base.model.bean.common.CommUserType;
import com.tuanzi.server.loan_base.model.db.CommProductChannel;
import com.tuanzi.server.loan_base.model.db.CommProductPrdid;
import com.tuanzi.server.loan_base.model.db.LoanProductInfo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

/**
 * 活动参与统计 JOOQRepositoryInterface
 * @author JinRuiyang 2018/1/26 11:02:38
 */
public interface ActivityParticipateStatRepository {
	
	Integer getPageUvByRequest(ActivityAverageJoinStatResponse searchRequest);

	Page<ActivityAverageJoinStatResponse> getlistPageByActivityJoin(ActivityAverageJoinStatRequest searchRequest,Pageable pageable);

    /**
     * ActivityParticipateStat查询
     * @param searchRequest 请求信息
     * @param pageable 分页信息
     * @return 响应列表
     */
    Page<ActivityParticipateStatSearchResponse> list(ActivityParticipateStatSearchRequest searchRequest, Pageable pageable);

    void cleanCache();

    List<CommProductPrdid> getProduct();

    List<CommProductChannel> getChannel();

    List<CommPlatform> getPlatform();

    List<CommUserType> getUserType();

    List<CommAdvertise> getAD();

    List<LoanProductInfo> getActivity();
    
    Map<String,String> getActivityMap();
    
    Map<String,String> getProdMap();
    
    Map<String,String> getChannelMap();
    
    Map<String,String> getSpaceMap();

    Page<ActivityParticipateStatSearchResponse> getDataList(ActivityParticipateStatSearchRequest searchRequest, Pageable pageable);
    
    Page<ActivityAverageJoinStatResponse> getlistPageByActivityJoinOfProdChannel(ActivityAverageJoinStatRequest searchRequest,Pageable pageable);
    
    Page<ActivityAverageJoinStatResponse> getAllListOfProdChannel(ActivityAverageJoinStatRequest searchRequest);
}










